//
//  KATButton.m
//  KATFramework
//
//  Created by Kantice on 14-6-11.
//  Copyright (c) 2014年 KatApp. All rights reserved.
//

#import "KATButton.h"



@interface KATButton ()

///点击手势
@property(nonatomic,retain) UITapGestureRecognizer *tap;

///长按手势
@property(nonatomic,retain) UILongPressGestureRecognizer *press;

@end



@implementation KATButton

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code
    }
    return self;
}

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect
{
    // Drawing code
}
*/

//简化构造方法
+ (instancetype)buttonWithFrame:(CGRect)frame
{
    return [self buttonWithFrame:frame type:KATButtonTypeClose color:[UIColor blueColor] lineWidth:1.0 scale:1.0 andOnClickAction:nil];
}


//全参数构造方法
+ (instancetype)buttonWithFrame:(CGRect)frame type:(KATButtonType)type color:(UIColor *)color lineWidth:(float)lineWidth scale:(float)scale andOnClickAction:(void (^)(void))action
{
    if(type==KATButtonTypeNone)
    {
        return nil;
    }
    
    KATButton *button=[[[self alloc] init] autorelease];
        
    button.frame=frame;
    button.backgroundColor=[UIColor clearColor];
    button.color=color;
    button.type=type;
    button.lineWidth=lineWidth;
    button.scale=scale;
    button.onClickAnimation=[button animationToOpacity:0.4 withDuration:0.2 repeat:1 autoreverses:YES delay:0.0];
    button.keepStateOnStop=NO;
    
    button.index=0;
    button.value=0.0;
    button.message=nil;
    button.object=nil;
    
    button.tap=[[[UITapGestureRecognizer alloc] initWithTarget:button action:@selector(buttonTaped)] autorelease];
    button.tap.numberOfTapsRequired=1;
    
    button.press=[[[UILongPressGestureRecognizer alloc] initWithTarget:button action:@selector(buttonPressed:)] autorelease];
    button.press.minimumPressDuration=0.3;
    
    button.eventDelegate=nil;
    button.onClickAction=action;
    
    return button;
}


//设置Frame
- (void)setFrame:(CGRect)frame
{
    [super setFrame:frame];
    
    [self setNeedsDisplay];
}


//设置颜色
- (void)setColor:(UIColor *)color
{
    if(_color!=color)
    {
        [_color release];
    
        _color=[color retain];
    
        [self setNeedsDisplay];
    }
}


//设置类型
- (void)setType:(KATButtonType)type
{
    _type=type;
    
    [self setNeedsDisplay];
}


//设置线宽
- (void)setLineWidth:(float)lineWidth
{
    _lineWidth=lineWidth;
    
    [self setNeedsDisplay];
}


//设置缩放比例
- (void)setScale:(float)scale
{
    _scale=scale;
    
    [self setNeedsDisplay];
}


//设置点击事件
- (void)setOnClickAction:(void (^)(void))onClickAction
{
    if(_onClickAction)
    {
        Block_release(_onClickAction);
    }
    
    if(onClickAction)
    {
        _onClickAction=[onClickAction copy];
        
        //添加点击事件
        self.userInteractionEnabled=YES;
        
        [self addGestureRecognizer:_tap];
        [self addGestureRecognizer:_press];
    }
    else
    {
        _onClickAction=nil;
        
        if(!_eventDelegate)//无代理
        {
            //移除点击事件
            [self removeGestureRecognizer:_tap];
            [self removeGestureRecognizer:_press];
            
//            self.userInteractionEnabled=NO;
        }
    }
}


//设置代理
- (void)setEventDelegate:(id<KATButtonDelegate>)eventDelegate
{
    _eventDelegate=eventDelegate;
    
    if(_eventDelegate)//有代理
    {
        //添加点击事件
        self.userInteractionEnabled=YES;
        
        [self addGestureRecognizer:_tap];
        [self addGestureRecognizer:_press];
    }
    else
    {
        if(!_onClickAction)//没有点击block
        {
            //移除点击事件
            [self removeGestureRecognizer:_tap];
            [self removeGestureRecognizer:_press];
            
//            self.userInteractionEnabled=NO;
        }
    }
}



//转化为图片
- (UIImage *)button2Image
{
    UIGraphicsBeginImageContextWithOptions(self.bounds.size, NO, [UIScreen mainScreen].scale);
    
    [self.layer renderInContext:UIGraphicsGetCurrentContext()];
    
    UIImage *image=UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return image;
}


//点击事件
- (void)buttonTaped
{
    //动画效果
    if(self.animating)
    {
        [self clearAnimations];
    }
    
    if(_onClickAnimation)
    {
        [self restoreSprite];
        [self startAnimation:_onClickAnimation andDelay:0];
    }
    
    //回调
    if(_onClickAction)
    {
        _onClickAction();
    }
    
    if(_eventDelegate && [_eventDelegate respondsToSelector:@selector(clickButton:)])
    {
        [_eventDelegate clickButton:self];
    }
}


//长按事件
- (void)buttonPressed:(UILongPressGestureRecognizer *)recognizer
{
    if(recognizer.state==UIGestureRecognizerStateBegan)//开始，变色
    {
        self.alpha=0.4;
    }
    else if(recognizer.state==UIGestureRecognizerStateEnded)//完成
    {
        self.alpha=1.0;
        
        CGPoint point=[recognizer locationInView:self];
        
        if(point.x<0.0 || point.x>self.bounds.size.width || point.y<0.0 || point.y>self.bounds.size.height)//超出边界
        {
            
        }
        else
        {
            //回调
            if(_onClickAction)
            {
                _onClickAction();
            }
            
            if(_eventDelegate && [_eventDelegate respondsToSelector:@selector(clickButton:)])
            {
                [_eventDelegate clickButton:self];
            }
        } 
    }
    else if(recognizer.state==UIGestureRecognizerStateChanged)//改变
    {
        CGPoint point=[recognizer locationInView:self];
        
        if(point.x<0.0 || point.x>self.bounds.size.width || point.y<0.0 || point.y>self.bounds.size.height)//超出边界
        {
            self.alpha=1.0;
        }
        else
        {
            self.alpha=0.4;
        }
    }
    else
    {
        self.alpha=1.0;
    }
    
}



//显示
- (void)drawRect:(CGRect)rect
{
    if(self.contents)
    {
        [super drawRect:rect];
        
        return;
    }
    
    CGContextRef context=UIGraphicsGetCurrentContext();//获得当前view的图形上下文(context)
    
    CGContextSetStrokeColorWithColor(context, _color.CGColor);//设置线段颜色
    CGContextSetFillColorWithColor(context, _color.CGColor);//设置填充颜色
    
    CGContextSetLineWidth(context, _lineWidth);
    CGContextSetLineJoin(context, kCGLineJoinRound);
    CGContextSetLineCap(context, kCGLineCapRound);
    
    //缩放公式w*(0.x+(0.5-0.x)*(1.0-_scale))
    switch(_type)
    {
        case KATButtonTypeNone:
        case KATButtonTypeEmpty:
            
            break;
            
            
#pragma -mark 方向
            
        case KATButtonTypeUp://上
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDown://下
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;//
            
            
        case KATButtonTypeLeft://左
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRight://右
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDoubleUp://双上
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDoubleDown://双下
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDoubleLef://双左
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDoubleRight://双右
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
        
        case KATButtonTypeUpSide://上边
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDownSide://下边
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale))+_lineWidth);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale))+_lineWidth);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLeftSide://左边
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth, self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth, self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRightSide://右边
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
            
        case KATButtonTypeArrowUp://箭头（向上）
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.19+(0.5-0.19)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.81+(0.5-0.81)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeArrowDown://箭头（向下）
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.19+(0.5-0.19)*(1.0-_scale)), self.bounds.size.height*(0.64+(0.5-0.64)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.81+(0.5-0.81)*(1.0-_scale)), self.bounds.size.height*(0.64+(0.5-0.64)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeArrowLeft://箭头（向左）
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.36+(0.5-0.36)*(1.0-_scale)), self.bounds.size.height*(0.19+(0.5-0.19)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.36+(0.5-0.36)*(1.0-_scale)), self.bounds.size.height*(0.81+(0.5-0.81)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeArrowRight://箭头（向右）
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.64+(0.5-0.64)*(1.0-_scale)), self.bounds.size.height*(0.19+(0.5-0.19)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.64+(0.5-0.64)*(1.0-_scale)), self.bounds.size.height*(0.81+(0.5-0.81)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundUp://上（带圆环）
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundDown://下（带圆环）
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundLeft://左（带圆环）
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundRight://右（带圆环）
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
  
            
            
#pragma -mark 形状
            
            
        case KATButtonTypeRectangle://矩形
            
            //小圆角矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeTriangle://三角形
            
            //小圆角三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale))+self.bounds.size.height*(0.087*_scale));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale))+self.bounds.size.height*(0.087*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale))-self.bounds.size.height*(0.087*_scale));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.087*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.087*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale))-self.bounds.size.height*(0.087*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRound://圆
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.height*(0.9*_scale)));
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundedRectangle://圆角矩形
            
            //圆角矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.2*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.2*_scale), self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.2*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.2*_scale), self.bounds.size.height*(0.2*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeStar://五角星
            
            //五角星
            CGContextMoveToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.393+(0.5-0.393)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.069+(0.5-0.069)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.607+(0.5-0.607)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.952+(0.5-0.952)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.672+(0.5-0.672)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.783+(0.5-0.783)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.217+(0.5-0.217)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.328+(0.5-0.328)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeHeart://心形
            
            //心形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context,self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context,self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSharpRectangle://尖角矩形
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSharpTriangle://尖角三角形
            
            //三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeFilledRectangle://矩形填充
            
            //小圆角矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeFilledTriangle://三角形填充
            
            //小圆角三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale))+self.bounds.size.height*(0.087*_scale));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale))+self.bounds.size.height*(0.087*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale))-self.bounds.size.height*(0.087*_scale));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.087*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.087*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale))-self.bounds.size.height*(0.087*_scale));
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeFilledRound://圆填充
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.height*(0.9*_scale)));
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeFilledRoundedRectangle://圆角矩形填充
            
            //圆角矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.2*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.2*_scale), self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.2*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.2*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.2*_scale), self.bounds.size.height*(0.2*_scale));
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeFilledStar://五角星填充
            
            //五角星填充
            CGContextMoveToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.393+(0.5-0.393)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.069+(0.5-0.069)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.607+(0.5-0.607)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.952+(0.5-0.952)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.672+(0.5-0.672)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.783+(0.5-0.783)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.217+(0.5-0.217)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.328+(0.5-0.328)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            //五角星描边
            CGContextMoveToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.393+(0.5-0.393)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.069+(0.5-0.069)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.607+(0.5-0.607)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.952+(0.5-0.952)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.672+(0.5-0.672)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.783+(0.5-0.783)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.217+(0.5-0.217)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.328+(0.5-0.328)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeFilledHeart://心形填充，半透明状态时会有三角形印记
            
            //心形填充
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context,self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context,self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            //心形描边
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context,self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context,self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.94+(0.5-0.94)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.02+(0.5-0.02)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeFilledSharpRectangle://尖角矩形填充
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeFilledSharpTriangle://尖角三角形填充
            
            //三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypePentagram://五芒星
            
            //五芒星
            CGContextMoveToPoint(context, self.bounds.size.width*(0.048+(0.5-0.048)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.952+(0.5-0.952)*(1.0-_scale)), self.bounds.size.height*(0.397+(0.5-0.397)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.217+(0.5-0.217)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.069+(0.5-0.069)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.783+(0.5-0.783)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeHexagram://六芒星
            
            //三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.height*(0.725+(0.5-0.725)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.725+(0.5-0.725)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePoint://点
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.height*(0.9*_scale)));
            CGContextFillPath(context);
            
            break;
            

            
#pragma -mark 播放
            
            
        case KATButtonTypePlayerPlay://播放
            
            //三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerPause://暂停
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerStop://停止
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerFilledPlay://播放
            
            //矩形填充
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))-_lineWidth*0.2);
            
            CGContextFillPath(context);
            
            //矩形描边
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerFilledPause://暂停
            
            //矩形填充
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            
            CGContextFillPath(context);
            
            //矩形描边
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //矩形填充
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            
            CGContextFillPath(context);
            
            //矩形描边
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerFilledStop://停止
            
            //矩形填充
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-_lineWidth*0.2);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2, self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*0.2);
            
            CGContextFillPath(context);
            
            //矩形描边
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
        
        case KATButtonTypePlayerLinearPlay://播放(线型)
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerLinearPause://暂停(线型)
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerSoundOn://开启声音
            
            //喇叭
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale))+self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //声波
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*1.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.25*_scale), M_PI*1.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlayerSoundOff://关闭声音
            
            //喇叭
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale))+self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //叉
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
            
#pragma -mark 编辑
            
            
        case KATButtonTypeOK://OK
            
            //勾
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeClose://关闭
            
            //叉
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeEdit://编辑
            
            //本子
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            
            //笔身
            CGContextMoveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //笔尖
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //笔帽
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeRemove://删除
            
            //轮廓
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //盖子
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //纹理
            CGContextMoveToPoint(context, self.bounds.size.width*(0.37+(0.5-0.37)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.37+(0.5-0.37)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.63+(0.5-0.63)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.63+(0.5-0.63)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeAdd://添加
            
            //十字
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeReduce://减
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCheck://勾选
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //勾
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBackspace://退格
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.2*_scale), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.15)+(0.5-0.05-0.15)*(1.0-_scale)), self.bounds.size.height*((0.5+0.15)+(0.5-0.5-0.15)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*((0.05+0.15)+(0.5-0.05-0.15)*(1.0-_scale)), self.bounds.size.height*((0.5-0.15)+(0.5-0.5+0.15)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //叉
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSetting://设置
            
            {
                float startAngle=0;//开始角度
                float radius=self.bounds.size.height*(0.45*_scale);//半径
                
                CGContextMoveToPoint(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius*(cosf(startAngle-M_PI/16.0)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius*(sinf(startAngle-M_PI/16.0)));
                
                //齿轮
                for(int i=0;i<8;i++)
                {
                    CGContextAddCurveToPoint(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius/1.62*(cosf(startAngle+M_PI/4.0*i-M_PI/16.0)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius/1.62*(sinf(startAngle+M_PI/4.0*i-M_PI/16.0)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius/1.62*(cosf(startAngle+M_PI/4.0*i+M_PI/16.0)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius/1.62*(sinf(startAngle+M_PI/4.0*i+M_PI/16.0)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius*(cosf(startAngle+M_PI/4.0*i+M_PI/16.0)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+radius*(sinf(startAngle+M_PI/4.0*i+M_PI/16.0)));
                    
                    CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), radius, startAngle+M_PI/4.0*i+M_PI/16.0, startAngle+M_PI/4.0*i+startAngle+M_PI/8.0+M_PI/16.0, 0);
                }
                
                CGContextStrokePath(context);
                
                //内圆
                CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), radius*0.38, M_PI*0, M_PI*2,0);
                
                CGContextStrokePath(context);
            }
            
            break;

            
        case KATButtonTypeEnter://进入
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLeave://离开
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSort://排序
            
            //上箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //下箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePick://图片拾取
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //十字
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
            
#pragma -mark 图标
            
            
        case KATButtonTypeSearch://搜索
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.6*_scale), self.bounds.size.height*(0.6*_scale)));
            
            CGContextStrokePath(context);
            
            //手柄
            CGContextSetLineWidth(context, 2*_lineWidth);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale))+_lineWidth);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeZoomIn://放大
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.6*_scale), self.bounds.size.height*(0.6*_scale)));
            CGContextStrokePath(context);
            
            //加号
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //手柄
            CGContextSetLineWidth(context, 2*_lineWidth);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale))+_lineWidth);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeZoomOut://缩小
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.6*_scale), self.bounds.size.height*(0.6*_scale)));
            CGContextStrokePath(context);
            
            //减号
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //手柄
            CGContextSetLineWidth(context, 2*_lineWidth);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale))+_lineWidth);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeUser://用户
            
            //头
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)), self.bounds.size.width*(0.225*_scale), M_PI*0, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            //身
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*1, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePlus://加法
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //加号
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMinus://减法
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //减号
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMultiply://乘法
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //乘号
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDivision://除法
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //除号
            CGContextSetLineWidth(context, _lineWidth<1.6?_lineWidth*2.0:_lineWidth*1.5);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePercent://百分号
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.82+(0.5-0.82)*(1.0-_scale)), self.bounds.size.height*(0.18+(0.5-0.18)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.18+(0.5-0.18)*(1.0-_scale)), self.bounds.size.height*(0.82+(0.5-0.82)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆圈
            CGContextAddArc(context, self.bounds.size.width*(0.26+(0.5-0.26)*(1.0-_scale)), self.bounds.size.height*(0.26+(0.5-0.26)*(1.0-_scale)), self.bounds.size.height*(0.08*_scale), 0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.74+(0.5-0.74)*(1.0-_scale)), self.bounds.size.height*(0.74+(0.5-0.74)*(1.0-_scale)), self.bounds.size.height*(0.08*_scale), 0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeReload://加载（圆形箭头）
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*0, M_PI*(1.0+5.0/6.0),0);
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.height*(0.035+(0.5-0.035)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeUpdate://更新（双半圆箭头）
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*1, M_PI*(1.0+5.0/6.0),0);
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.height*(0.035+(0.5-0.035)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.275+(0.5-0.275)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*0, M_PI*(5.0/6.0),0);
            
            CGContextStrokePath(context);
            
            //尖头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.965+(0.5-0.965)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.725+(0.5-0.725)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.725+(0.5-0.725)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDownload://下载
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //矩形框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeUpload://上传
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //矩形框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeRefresh://刷新（圆形无箭头）
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*0, M_PI*(1.0+5.0/6.0),0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLocation://位置
            
            //指针
            CGContextMoveToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeNearby://附近
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //指针
            CGContextMoveToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeCoordinate://坐标
            
            //外部形状
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.3*_scale), M_PI, M_PI*2, 0);
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //内圆
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.12*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSend://发送
            
            //纸飞机
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMail://邮件
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale))+self.bounds.size.height*(0.1+_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //内线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5*2.0/3.0+(0.5-0.5*2.0/3.0)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(1-0.5*2.0/3.0+(0.5-(1.0-0.5*2.0/3.0))*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeComment://评论
            
            //气泡
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeChat://聊天
            
            //气泡
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //圆圈
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale)));
            
            CGContextStrokePath(context);
            
            //圆圈
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeFocus://对焦
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundedFocus://对焦（圆角）
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeScan://扫描
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeRoundedScan://扫描（圆角）
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeCamera://相机
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //镜头
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.2*_scale), M_PI*0, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            //按钮
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*2.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            break;
            
            
        case KATButtonTypeCalendar://日历
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.height*(0.15*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.15*_scale), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.height*(0.15*_scale), self.bounds.size.height*(0.15*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.15*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.15*_scale), self.bounds.size.height*(0.15*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //连接
            CGContextSetLineWidth(context, _lineWidth*2.4);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.08+(0.5-0.08)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.22+(0.5-0.22)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.08+(0.5-0.08)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.22+(0.5-0.22)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            
            break;

            
        case KATButtonTypeBluetooth://蓝牙
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.154+(0.5-0.154)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.846+(0.5-0.846)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.846+(0.5-0.846)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.154+(0.5-0.154)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBrightness://亮度
            
            //圆
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextFillPath(context);
            
            //光线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.18+(0.5-0.18)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.82+(0.5-0.82)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.18+(0.5-0.18)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.82+(0.5-0.82)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.273+(0.5-0.273)*(1.0-_scale)), self.bounds.size.height*(0.273+(0.5-0.273)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.727+(0.5-0.727)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.727+(0.5-0.727)*(1.0-_scale)), self.bounds.size.height*(0.273+(0.5-0.273)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.273+(0.5-0.273)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeNight://夜晚
            
            //月亮
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4*_scale), M_PI*1.5, M_PI*0, 1);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeMicphone://麦克风
            
            //底座
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25*_scale), M_PI*1.0, M_PI*0, 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //麦克风
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale), M_PI*1.0, M_PI*0, 0);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.15*_scale), M_PI*0, M_PI*1.0, 0);
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeFlying://飞行
            
            //机身
            CGContextAddArc(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale), M_PI*0.5, M_PI*1.5, 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            //机翼
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            break;
            
            
        case KATButtonTypeHome://主页
            
            //屋顶
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //屋子
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.05*_scale), self.bounds.size.height*(0.05*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //门
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //烟囱
            CGContextMoveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.12+(0.5-0.12)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.12+(0.5-0.12)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMore://更多内容
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*2.4);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*2.4*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+_lineWidth*2.4*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth*2.4*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth*2.4*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))+_lineWidth*2.4*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))+_lineWidth*2.4*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            break;
            
            
        case KATButtonTypeList://列表
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+_lineWidth*3, self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+_lineWidth*3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+_lineWidth*3, self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+_lineWidth*3*0.5, self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+_lineWidth*3*0.5, self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+_lineWidth*3*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+_lineWidth*3*0.5, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+_lineWidth*3*0.5, self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+_lineWidth*3*0.5, self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            break;

            
        case KATButtonTypeClock://时钟
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            //指针
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.16+(0.5-0.16)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.32+(0.5-0.32)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeDocument://文档
            
            //边框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //折角
            CGContextMoveToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBalance://天平
            
            //架子
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //托盘
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBooking://预约
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //刻度
            CGContextMoveToPoint(context, self.bounds.size.width*(0.12+(0.5-0.12)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.18+(0.5-0.18)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.88+(0.5-0.88)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.82+(0.5-0.82)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.12+(0.5-0.12)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.18+(0.5-0.18)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.88+(0.5-0.88)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.82+(0.5-0.82)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //指针
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCure://治疗
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //十字
            CGContextSetLineWidth(context, _lineWidth*3.0);
            CGContextSetLineCap(context, kCGLineCapSquare);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeAid://急救
            
            //箱子
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //提手
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //十字
            CGContextSetLineWidth(context, _lineWidth*2.0);
            CGContextSetLineCap(context, kCGLineCapSquare);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.325+(0.5-0.325)*(1.0-_scale)), self.bounds.size.height*(0.575+(0.5-0.575)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.675+(0.5-0.675)*(1.0-_scale)), self.bounds.size.height*(0.575+(0.5-0.575)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMicroscope://显微镜
            
            //机身
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.35*_scale), M_PI*1.5, M_PI*1,0);
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.92+(0.5-0.92)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.92+(0.5-0.92)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //镜筒
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeWifi://Wi-Fi
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.2*_scale), M_PI*1.25, M_PI*1.75,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.4*_scale), M_PI*1.25, M_PI*1.75,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.6*_scale), M_PI*1.25, M_PI*1.75,0);
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBroadcast://广播
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.2*_scale), M_PI*0.75, M_PI*1.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.325*_scale), M_PI*0.75, M_PI*1.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*0.75, M_PI*1.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.2*_scale), M_PI*1.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.325*_scale), M_PI*1.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*1.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBroadcast2://广播2
            
            //弧形
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.2*_scale), M_PI*0.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.325*_scale), M_PI*0.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45*_scale), M_PI*0.75, M_PI*0.25,0);
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSubscription://订阅
            
            //弧形
            CGContextSetLineWidth(context, _lineWidth*2.0);
            
            CGContextAddArc(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.35*_scale), M_PI*1.5, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.7*_scale), M_PI*1.5, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeNorth://北面
            
            //指针
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.069+(0.5-0.069)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.783+(0.5-0.783)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.217+(0.5-0.217)*(1.0-_scale)), self.bounds.size.height*(0.931+(0.5-0.931)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.069+(0.5-0.069)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeArticle://文章
            
            //外框
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //折角
            CGContextMoveToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.27+(0.5-0.27)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.27+(0.5-0.27)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.72+(0.5-0.72)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.27+(0.5-0.27)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.72+(0.5-0.72)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeCloud://云
            
            //云
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(1.03+(0.5-1.03)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(1.03+(0.5-1.03)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((0.8+0.23*sinf(acosf(0.941)))+(0.5-(0.8+0.23*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.23*0.941)+(0.5-(0.3-0.23*0.941))*(1.0-_scale)), self.bounds.size.width*((0.8-0.941*0.4+0.23*sinf(acosf(0.941)))+(0.5-(0.8-0.941*0.4+0.23*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941))-0.23*0.941)+(0.5-(0.3-0.4*sinf(acosf(0.941))-0.23*0.941))*(1.0-_scale)), self.bounds.size.width*((0.8-0.941*0.4)+(0.5-(0.8-0.941*0.4))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941)))+(0.5-(0.3-0.4*sinf(acosf(0.941))))*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((0.8-0.941*0.4-0.20*sinf(acosf(0.941)))+(0.5-(0.8-0.941*0.4-0.20*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941))-0.1265*0.941)+(0.5-(0.3-0.4*sinf(acosf(0.941))-0.1265*0.941))*(1.0-_scale)), self.bounds.size.width*((0.2-0.20*sinf(acosf(0.941)))+(0.5-(0.2-0.20*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.1265*0.8423)+(0.5-(0.3-0.1265*0.8423))*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((-0.03)+(0.5-(-0.03))*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*((-0.03)+(0.5-(-0.03))*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCloudDownload://云下载
            
            //云
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(1.03+(0.5-1.03)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(1.03+(0.5-1.03)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((0.8+0.23*sinf(acosf(0.941)))+(0.5-(0.8+0.23*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.23*0.941)+(0.5-(0.3-0.23*0.941))*(1.0-_scale)), self.bounds.size.width*((0.8-0.941*0.4+0.23*sinf(acosf(0.941)))+(0.5-(0.8-0.941*0.4+0.23*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941))-0.23*0.941)+(0.5-(0.3-0.4*sinf(acosf(0.941))-0.23*0.941))*(1.0-_scale)), self.bounds.size.width*((0.8-0.941*0.4)+(0.5-(0.8-0.941*0.4))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941)))+(0.5-(0.3-0.4*sinf(acosf(0.941))))*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((0.8-0.941*0.4-0.20*sinf(acosf(0.941)))+(0.5-(0.8-0.941*0.4-0.20*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941))-0.1265*0.941)+(0.5-(0.3-0.4*sinf(acosf(0.941))-0.1265*0.941))*(1.0-_scale)), self.bounds.size.width*((0.2-0.20*sinf(acosf(0.941)))+(0.5-(0.2-0.20*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.1265*0.8423)+(0.5-(0.3-0.1265*0.8423))*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((-0.03)+(0.5-(-0.03))*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*((-0.03)+(0.5-(-0.03))*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCloudUpload://云上传
            
            //云
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(1.03+(0.5-1.03)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(1.03+(0.5-1.03)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((0.8+0.23*sinf(acosf(0.941)))+(0.5-(0.8+0.23*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.23*0.941)+(0.5-(0.3-0.23*0.941))*(1.0-_scale)), self.bounds.size.width*((0.8-0.941*0.4+0.23*sinf(acosf(0.941)))+(0.5-(0.8-0.941*0.4+0.23*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941))-0.23*0.941)+(0.5-(0.3-0.4*sinf(acosf(0.941))-0.23*0.941))*(1.0-_scale)), self.bounds.size.width*((0.8-0.941*0.4)+(0.5-(0.8-0.941*0.4))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941)))+(0.5-(0.3-0.4*sinf(acosf(0.941))))*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((0.8-0.941*0.4-0.20*sinf(acosf(0.941)))+(0.5-(0.8-0.941*0.4-0.20*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.4*sinf(acosf(0.941))-0.1265*0.941)+(0.5-(0.3-0.4*sinf(acosf(0.941))-0.1265*0.941))*(1.0-_scale)), self.bounds.size.width*((0.2-0.20*sinf(acosf(0.941)))+(0.5-(0.2-0.20*sinf(acosf(0.941))))*(1.0-_scale)), self.bounds.size.height*((0.3-0.1265*0.8423)+(0.5-(0.3-0.1265*0.8423))*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*((-0.03)+(0.5-(-0.03))*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*((-0.03)+(0.5-(-0.03))*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeLock://锁
            
            //锁身
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //锁环
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.0+(0.5-0.0)*(1.0-_scale)), self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.0+(0.5-0.0)*(1.0-_scale)), self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //锁孔
            CGContextSetLineWidth(context, _lineWidth<1.6?_lineWidth*2.0:_lineWidth*1.5);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth<1.6?_lineWidth*4.0:_lineWidth*3.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeImage://图片
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //山脉
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //太阳
            CGContextAddArc(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.04*_scale), M_PI*0, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBrokenImage://破损图片
            
            //矩形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //大叉
            CGContextSetLineWidth(context, _lineWidth*2.0);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            
            break;
            
            
        case KATButtonTypeFemale://女性
            
            //圆
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.25*_scale), M_PI*0, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            //十字
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale))+_lineWidth*0.5);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMale://男性
            
            //圆
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.25*_scale), M_PI*0, M_PI*2,0);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale))-_lineWidth*0.5);
            
            CGContextStrokePath(context);
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeSun://太阳
            
            //圆
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.25*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            //光线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.18+(0.5-0.18)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.82+(0.5-0.82)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.18+(0.5-0.18)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.82+(0.5-0.82)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.273+(0.5-0.273)*(1.0-_scale)), self.bounds.size.height*(0.273+(0.5-0.273)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.727+(0.5-0.727)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.727+(0.5-0.727)*(1.0-_scale)), self.bounds.size.height*(0.273+(0.5-0.273)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.273+(0.5-0.273)*(1.0-_scale)), self.bounds.size.height*(0.727+(0.5-0.727)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeMoon://月亮
            
            //外圆
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4*_scale), M_PI*0.5-M_PI/6.0, M_PI*1.5+M_PI/6.0, 0);
            
            CGContextStrokePath(context);
            
            //内圆
            CGContextAddArc(context, self.bounds.size.width*((0.5+0.2)+(0.5-0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*0.4*(sqrtf(3.0)/2.0)*_scale, M_PI*1.5, M_PI*0.5, 1);
            
            CGContextStrokePath(context);
            
            break;

            
        case KATButtonTypeLightning://闪电
            
            //闪电
            CGContextMoveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeInfomation://提示
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth*1.5);
            
            //i
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.46+(0.5-0.46)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeForbid://禁止
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //叉
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBan://禁止
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeQuestion://问题
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.9*_scale), self.bounds.size.width*(0.9*_scale)));
            
            CGContextStrokePath(context);
            
            //问号
            CGContextSetLineWidth(context, _lineWidth*1.5);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.width*(0.15*_scale), M_PI*1.0, M_PI*2,0);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCaution://注意
            
            //三角形
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale))+self.bounds.size.height*(0.087*_scale));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.11+(0.5-0.11)*(1.0-_scale))+self.bounds.size.height*(0.087*_scale));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale))-self.bounds.size.height*(0.087*_scale));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale))-self.bounds.size.width*(0.087*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.087*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale)), self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.width*(0.05*_scale), self.bounds.size.height*(0.89+(0.5-0.89)*(1.0-_scale))-self.bounds.size.height*(0.087*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //叹号
            CGContextSetLineWidth(context, _lineWidth*1.5);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.66+(0.5-0.66)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeTarget://目标
            
            //圆
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.28*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.38+(0.5-0.38)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.62+(0.5-0.62)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.38+(0.5-0.38)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.62+(0.5-0.62)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            

        case KATButtonTypeCall://呼叫
            
            //电话
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.0+(0.5-0.0)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(1.0+(0.5-1.0)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePhone://iPhone
            
            //机身
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale))+self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale))+self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale))-self.bounds.size.width*(0.1*_scale), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.1*_scale));
            CGContextAddArcToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale))-self.bounds.size.height*(0.1*_scale), self.bounds.size.height*(0.1*_scale));
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //屏幕
            CGContextMoveToPoint(context, self.bounds.size.width*(0.26+(0.5-0.26)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.74+(0.5-0.74)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.74+(0.5-0.74)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.26+(0.5-0.26)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextClosePath(context);
            
//            CGContextStrokePath(context);
            CGContextFillPath(context);
            
            //听筒
            CGContextMoveToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //Home键
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.05*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeAries://白羊座
            
            //曲线
            CGContextAddArc(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.width*(0.15*_scale), M_PI*0.5, M_PI*1.5, 0);
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.width*(0.15*_scale), M_PI*1.5, M_PI*0.5, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeTaurus://金牛座
            
            //圆
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.25*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeGemini://双子座
            
            //弧
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(1.543+(0.5-1.543)*(1.0-_scale)), self.bounds.size.height*(0.8*_scale), M_PI*(1.5-1.0/6.0), M_PI*(1.5+1.0/6.0), 0);
            
            CGContextStrokePath(context);
            
            //弧
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*((-0.543)+(0.5-(-0.543))*(1.0-_scale)), self.bounds.size.height*(0.8*_scale), M_PI*(0.5-1.0/6.0), M_PI*(0.5+1.0/6.0), 0);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.293+(0.5-0.293)*(1.0-_scale)), self.bounds.size.height*(0.23+(0.5-0.23)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.293+(0.5-0.293)*(1.0-_scale)), self.bounds.size.height*(0.77+(0.5-0.77)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.707+(0.5-0.707)*(1.0-_scale)), self.bounds.size.height*(0.23+(0.5-0.23)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.707+(0.5-0.707)*(1.0-_scale)), self.bounds.size.height*(0.77+(0.5-0.77)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCancer://巨蟹座
            
            //圆
            CGContextAddArc(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.15*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddArc(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.15*_scale), M_PI*0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.144+(0.5-0.144)*(1.0-_scale)), self.bounds.size.height*(0.294+(0.5-0.294)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.523+(0.5-0.523)*(1.0-_scale)), self.bounds.size.height*(0.0+(0.5-0.0)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.294+(0.5-0.294)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.856+(0.5-0.856)*(1.0-_scale)), self.bounds.size.height*(0.706+(0.5-0.706)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.477+(0.5-0.477)*(1.0-_scale)), self.bounds.size.height*(1.0+(0.5-1.0)*(1.0-_scale)), self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.706+(0.5-0.706)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLeo://狮子座
            
            //曲线
            CGContextAddArc(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.15*_scale), M_PI*0, M_PI*2, 0);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.2*_scale), M_PI*1, M_PI*2, 0);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.width*(0.725+(0.5-0.725)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.width*(0.125*_scale), M_PI*1, M_PI*2, 1);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeVirgo://处女座
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLibra://天秤座
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.6165+(0.5-0.6165)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.375+(0.5-0.375)*(1.0-_scale)), self.bounds.size.height*(0.6165+(0.5-0.6165)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.25*_scale), M_PI*(0.5+1.0/6.0), M_PI*(2.0+1.0/3.0), 0);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.6165+(0.5-0.6165)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeScorpio://天蝎座
            
            //qux
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.875+(0.5-0.875)*(1.0-_scale)), self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeSagittarius://射手座
            
            //箭头
            CGContextMoveToPoint(context, self.bounds.size.width*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeCapricorn://摩羯座
            
            //曲线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.15+(0.5-0.15)*(1.0-_scale)), self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeAquarius://水瓶座
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.85+(0.5-0.85)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypePisces://双鱼座
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //曲线
            CGContextAddArc(context, self.bounds.size.width*(-0.2+(0.5-(-0.2))*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.6*_scale), M_PI*(1.0/4.0), M_PI*(2.0-1.0/4.0), 1);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(1.2+(0.5-1.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.6*_scale), M_PI*(1.0-1.0/4.0), M_PI*(1.0+1.0/4.0), 0);
            
            CGContextStrokePath(context);
            
            break;

            
            
#pragma -mark 图表
            
            
        case KATButtonTypeLineChart://折线图
            
            //底线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLineChart2://折线图2
            
            //坐标系
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*0*_scale, self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.22*_scale), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.44*_scale), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.66*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*2.4);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*0*_scale, self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*0*_scale, self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.22*_scale), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.22*_scale), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.44*_scale), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.44*_scale), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.66*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.17+(0.5-0.17)*(1.0-_scale))+self.bounds.size.width*(0.66*_scale), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeLineChart3://折线图3
            
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*0*_scale, self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.22*_scale), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.44*_scale), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.66*_scale), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.88*_scale), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextSetLineWidth(context, _lineWidth*2.4);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*0*_scale, self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*0*_scale, self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.22*_scale), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.22*_scale), self.bounds.size.height*(0.85+(0.5-0.85)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.44*_scale), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.44*_scale), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.66*_scale), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.66*_scale), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.88*_scale), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.06+(0.5-0.06)*(1.0-_scale))+self.bounds.size.width*(0.88*_scale), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeAreaChart://面积图
            
            //底线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeAreaChart2://面积图2
            
            //底线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //圆
            CGContextAddEllipseInRect(context, CGRectMake(self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-_lineWidth*1.3, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))-_lineWidth*1.3, _lineWidth*2.6, _lineWidth*2.6));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))+0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+_lineWidth*1.3);
            
            CGContextStrokePath(context);
            
            
            //面积
            CGContextMoveToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth*1.3);
            CGContextAddArc(context, self.bounds.size.width*(0.11+(0.5-0.11)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), _lineWidth*1.3, M_PI*0.5, M_PI*2.0-acosf(0.26/(sqrtf(0.26*0.26+0.2*0.2))), 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3*_scale, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))+0.2/(sqrtf(0.26*0.26+0.2*0.2))*_lineWidth*1.3*_scale);
            CGContextAddArc(context, self.bounds.size.width*((0.11+0.26)+(0.5-0.11-0.26)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)), _lineWidth*1.3, M_PI*0.5+asinf(0.26/(sqrtf(0.26*0.26+0.2*0.2))), M_PI*0.5-asinf(0.26/(sqrtf(0.26*0.26+0.1*0.1))), 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3*_scale, self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale))-0.1/(sqrtf(0.26*0.26+0.1*0.1))*_lineWidth*1.3*_scale);
            CGContextAddArc(context, self.bounds.size.width*((0.11+0.26*2)+(0.5-0.11-0.26*2)*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)), _lineWidth*1.3, M_PI*1.0+acosf(0.26/(sqrtf(0.26*0.26+0.1*0.1))), M_PI*2.0-acosf(0.26/(sqrtf(0.26*0.26+0.15*0.15))), 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale))-0.26/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3*_scale, self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale))+0.15/(sqrtf(0.26*0.26+0.15*0.15))*_lineWidth*1.3*_scale);
            CGContextAddArc(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)), _lineWidth*1.3, M_PI*0.5+asinf(0.26/(sqrtf(0.26*0.26+0.15*0.15))), M_PI*0.5, 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.11+0.26*3)+(0.5-0.11-0.26*3)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            
            break;
            
            
        case KATButtonTypeBarChart://条形图
            
            //底线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //条形
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+0.11)+(0.5-0.05-0.11)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11)+(0.5-0.05-0.11)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11+0.16)+(0.5-0.05-0.11-0.16)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11+0.16)+(0.5-0.05-0.11-0.16)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1)+(0.5-0.05-0.11-0.16-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1)+(0.5-0.05-0.11-0.16-0.1)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1+0.16)+(0.5-0.05-0.11-0.16-0.1-0.16)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1+0.16)+(0.5-0.05-0.11-0.16-0.1-0.16)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1)+(0.5-(0.05+(0.11+0.16)*2+0.1))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1)+(0.5-(0.05+(0.11+0.16)*2+0.1))*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1+0.16)+(0.5-(0.05+(0.11+0.16)*2+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1+0.16)+(0.5-(0.05+(0.11+0.16)*2+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeBarChart2://条形图2
            
            //坐标系
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.05+(0.5-0.05)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //条形
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+0.09)+(0.5-0.05-0.09)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.09)+(0.5-0.05-0.09)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.09+0.18)+(0.5-0.05-0.09-0.18)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.09+0.18)+(0.5-0.05-0.09-0.18)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)+0.09)+(0.5-0.05-0.09-0.18-0.09)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)+0.09)+(0.5-0.05-0.09-0.18-0.09)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)+0.09+0.18)+(0.5-0.05-0.09-0.18-0.09-0.18)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)+0.09+0.18)+(0.5-0.05-0.09-0.18-0.09-0.18)*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)*2+0.09)+(0.5-(0.05+(0.09+0.18)*2+0.09))*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)*2+0.09)+(0.5-(0.05+(0.09+0.18)*2+0.09))*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)*2+0.09+0.18)+(0.5-(0.05+(0.09+0.18)*2+0.09+0.18))*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.09+0.18)*2+0.09+0.18)+(0.5-(0.05+(0.09+0.18)*2+0.09+0.18))*(1.0-_scale)), self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeStackChart://堆图
            
            //底线
            CGContextMoveToPoint(context, self.bounds.size.width*(0.05+(0.5-0.05)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //条形
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+0.11)+(0.5-0.05-0.11)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11)+(0.5-0.05-0.11)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11+0.16)+(0.5-0.05-0.11-0.16)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11+0.16)+(0.5-0.05-0.11-0.16)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+0.11)+(0.5-0.05-0.11)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11)+(0.5-0.05-0.11)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11+0.16)+(0.5-0.05-0.11-0.16)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+0.11+0.16)+(0.5-0.05-0.11-0.16)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1)+(0.5-(0.05+(0.11+0.16)+0.1))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1)+(0.5-(0.05+(0.11+0.16)+0.1))*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1+0.16)+(0.5-(0.05+(0.11+0.16)+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1+0.16)+(0.5-(0.05+(0.11+0.16)+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1)+(0.5-(0.05+(0.11+0.16)+0.1))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1)+(0.5-(0.05+(0.11+0.16)+0.1))*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1+0.16)+(0.5-(0.05+(0.11+0.16)+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.55+(0.5-0.55)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)+0.1+0.16)+(0.5-(0.05+(0.11+0.16)+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1)+(0.5-(0.05+(0.11+0.16)*2+0.1))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1)+(0.5-(0.05+(0.11+0.16)*2+0.1))*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1+0.16)+(0.5-(0.05+(0.11+0.16)*2+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.4+(0.5-0.4)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1+0.16)+(0.5-(0.05+(0.11+0.16)*2+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextMoveToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1)+(0.5-(0.05+(0.11+0.16)*2+0.1))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1)+(0.5-(0.05+(0.11+0.16)*2+0.1))*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1+0.16)+(0.5-(0.05+(0.11+0.16)*2+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*((0.05+(0.11+0.16)*2+0.1+0.16)+(0.5-(0.05+(0.11+0.16)*2+0.1+0.16))*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextFillPath(context);
            
            break;
            
            
            
        case KATButtonTypePieChart://饼图
            
            //弧形
            CGContextMoveToPoint(context, self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.45*_scale), M_PI*0, M_PI*1.5,0);
            CGContextAddLineToPoint(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale)));
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.2*_scale), M_PI*1.5, M_PI*0,1);
            CGContextClosePath(context);
            
            CGContextStrokePath(context);
            
            //弧形
            CGContextMoveToPoint(context, self.bounds.size.height*(0.95+(0.5-0.95)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-_lineWidth);
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-_lineWidth, self.bounds.size.height*(0.45*_scale)-_lineWidth, M_PI*0, M_PI*1.5,1);
            CGContextAddLineToPoint(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.3+(0.5-0.3)*(1.0-_scale))-_lineWidth);
            CGContextAddArc(context, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))+_lineWidth, self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale))-_lineWidth, self.bounds.size.height*(0.2*_scale)-_lineWidth, M_PI*1.5, M_PI*0, 0);
            CGContextClosePath(context);
            
            CGContextFillPath(context);
            
            break;

            
            
#pragma -mark 键盘
            
            
        case KATButtonTypeKeyboard0://键盘:0
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard1://键盘:1
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard2://键盘:2
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)), self.bounds.size.width*(0.18*_scale), M_PI*1.0, M_PI*2, 0);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.68+(0.5-0.68)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.275+(0.5-0.275)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.275+(0.5-0.275)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.725+(0.5-0.725)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard3://键盘:3
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.28+(0.5-0.28)*(1.0-_scale)), self.bounds.size.width*(0.18*_scale), M_PI*1.0, M_PI*2.5, 0);
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)), self.bounds.size.width*(0.22*_scale), M_PI*1.5, M_PI*3.0, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard4://键盘:4
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.6+(0.5-0.6)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard5://键盘:5
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.width*(0.25*_scale), M_PI*1.0, M_PI*4.0/3.0, 1);
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard6://键盘:6
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)), self.bounds.size.width*(0.22*_scale), M_PI*1.0, M_PI*3.0, 0);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.28+(0.5-0.28)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard7://键盘:7
            
            CGContextMoveToPoint(context, self.bounds.size.width*(0.275+(0.5-0.275)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.725+(0.5-0.725)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddQuadCurveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard8://键盘:8
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.28+(0.5-0.28)*(1.0-_scale)), self.bounds.size.width*(0.18*_scale), M_PI*0.5, M_PI*2.5, 0);
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)), self.bounds.size.width*(0.22*_scale), M_PI*1.5, M_PI*3.5, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboard9://键盘:9
            
            CGContextAddArc(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)), self.bounds.size.width*(0.22*_scale), M_PI*0.0, M_PI*2, 0);
            CGContextAddCurveToPoint(context, self.bounds.size.width*(0.72+(0.5-0.72)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardPoint://键盘:小数点
            
            CGContextSetLineWidth(context, _lineWidth<1.6?_lineWidth*3.0:_lineWidth*2.4);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            break;
            
            
        case KATButtonTypeKeyboardEqual://键盘:等号
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.375+(0.5-0.375)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.375+(0.5-0.375)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.625+(0.5-0.625)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.625+(0.5-0.625)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardPlus://键盘:加号
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardMinus://键盘:减号
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardMultipy://键盘:乘号
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.25+(0.5-0.25)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardDivision://键盘:除号
            
            CGContextSetLineWidth(context, _lineWidth<1.6?_lineWidth*2.0:_lineWidth*1.5);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.32+(0.5-0.32)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆点
            CGContextMoveToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.68+(0.5-0.68)*(1.0-_scale)));
            CGContextStrokePath(context);
            
            CGContextSetLineWidth(context, _lineWidth);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.2+(0.5-0.2)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardPower://键盘:^
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.45+(0.5-0.45)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardPercent://键盘:百分号
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.73+(0.5-0.73)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.37+(0.5-0.37)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //圆圈
            CGContextAddArc(context, self.bounds.size.width*(0.37+(0.5-0.37)*(1.0-_scale)), self.bounds.size.height*(0.18+(0.5-0.18)*(1.0-_scale)), self.bounds.size.height*(0.08*_scale), 0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            CGContextAddArc(context, self.bounds.size.width*(0.73+(0.5-0.73)*(1.0-_scale)), self.bounds.size.height*(0.82+(0.5-0.82)*(1.0-_scale)), self.bounds.size.height*(0.08*_scale), 0, M_PI*2, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardLeftBrackets://键盘:左括号
            
            //圆弧
            CGContextAddArc(context, self.bounds.size.width*((0.5+0.4*1.414)+(0.5-0.5-0.4*1.414)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.4*1.414*_scale), M_PI*3.0/4.0, M_PI*5.0/4.0, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardRightBrackets://键盘:右括号
            
            //圆弧
            CGContextAddArc(context, self.bounds.size.width*((0.5-0.4*1.414)+(0.5-0.5+0.4*1.414)*(1.0-_scale)), self.bounds.size.height*(0.5+(0.5-0.5)*(1.0-_scale)), self.bounds.size.width*(0.4*1.414*_scale), M_PI*7.0/4.0, M_PI*9.0/4.0, 0);
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardBlank://键盘:空格
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.1+(0.5-0.1)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.9+(0.5-0.9)*(1.0-_scale)), self.bounds.size.height*(0.75+(0.5-0.75)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardReturn://键盘:回车
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.35+(0.5-0.35)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.8+(0.5-0.8)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.6+(0.5-0.6)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.7+(0.5-0.7)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.4+(0.5-0.4)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardSlash://键盘:斜杠
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.73+(0.5-0.73)*(1.0-_scale)), self.bounds.size.height*(0.1+(0.5-0.1)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.37+(0.5-0.37)*(1.0-_scale)), self.bounds.size.height*(0.9+(0.5-0.9)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
            
        case KATButtonTypeKeyboardShape://键盘:#
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.65+(0.5-0.65)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.55+(0.5-0.55)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.45+(0.5-0.45)*(1.0-_scale)), self.bounds.size.height*(0.2+(0.5-0.2)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.35+(0.5-0.35)*(1.0-_scale)), self.bounds.size.height*(0.8+(0.5-0.8)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.3+(0.5-0.3)*(1.0-_scale)), self.bounds.size.height*(0.375+(0.5-0.375)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.75+(0.5-0.75)*(1.0-_scale)), self.bounds.size.height*(0.375+(0.5-0.375)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            //线段
            CGContextMoveToPoint(context, self.bounds.size.width*(0.25+(0.5-0.25)*(1.0-_scale)), self.bounds.size.height*(0.625+(0.5-0.625)*(1.0-_scale)));
            CGContextAddLineToPoint(context, self.bounds.size.width*(0.7+(0.5-0.7)*(1.0-_scale)), self.bounds.size.height*(0.625+(0.5-0.625)*(1.0-_scale)));
            
            CGContextStrokePath(context);
            
            break;
            
    }
    
    
}


- (void)dealloc
{    
    if(_onClickAction)
    {
        Block_release(_onClickAction);
    }
    
    [_onClickAnimation release];
    
    [_tap release];
    [_press release];
    [_color release];
    [_message release];
    [_object release];
    
    [super dealloc];
}


@end



